With the advent of low-cost sensor technology, low-power computing technology, and widely-available wireless networks, there is an increasing opportunity to sense the physical world, analyze multiple parameters of the physical world, and respond rapidly to changes within the physical world. Businesses would like to capitalize on these capabilities, but their ability to do so has been limited by the inherent complexities of the various systems required to acquire data, deliver data to the appropriate processing nodes, filter out unneeded data, correlate relevant data with other information, and determine if a condition or event of interest has occurred.
Additional challenges arise when the data needed to determine if a condition has occurred is large in volume or required at a high frequency. The data can overload wireless networks or cause substantial network usage charges to be incurred. Furthermore, the computing power required from servers to handle the processing and communication loads may be prohibitively expensive.
In addition, a sense-response application may require an immediate, local response. The traditional model of sending data to business logic executing on servers, computing the response, and then communicating results back to a local agent may result in unsatisfactory delays.
A useful approach to these challenges is to deploy processing capability near the source of the data, co-located with sensor technology. (Such devices are commonly referred to as “motes.”) When complex business needs involve heterogeneous sets of devices and diverse sensor technology, however, programming this form of sense-response technology can be challenging.
A need therefore exists for a sense-response programming model where developers can define the conditions of interest as linked sets of rules, and where a framework intelligently deploys the rules to locations where they are most relevant.